package com.dieusoft.box.bill.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

@Data
@TableName("bill_info")
public class BillInfo implements Serializable {

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;

    /**
     * 账单类型
     */
    private String buisType;

    /**
     * 发票抬头
     */
    private String invoiceTitle;

    /**
     * 发票号
     */
    private String invoiceNumber;

    /**
     * 币种
     */
    private String currency;

    /**
     * 账单属性
     */
    private String billAttr;

    /**
     * 对账金额
     */
    private String amount;

    /**
     * 账单号
     */
    private String billNumber;

    private String notes;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(update = "now()")
    private Date updateTime;

    private String createUser;

    private String updateUser;

    private String sysOrgCode;

    /**
     * 结算单位
     */
    private String settlementCompany;
    /**
     * 核销币种
     */
    private String verificationCurrency;

    /**
     * 账单状态
     * 1：未审核
     * 2：审核通过/未开票/
     * 3：部分审核
     */
    private String status;

    /**
     * 核销时间
     */
    private Date verificationTime;

    /**
     * 开票时间
     */

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date billingTime;


    /**
     * 核销汇率
     */
    private String verificationRate;
    /**
     * 核销方式
     */
    private String verificationMode;

    /**
     * 核销账号
     */
    private String verificationAccount;
    /**
     * 核销类型
     */
    private String verificationType;

    /**
     * 已核销金额
     */
    private String writeOffAmount;

    /**
     * 业务数据主键
     */
    private String businessId;
}
